//
// Created by 吴喆 on 2020/3/18.
//

#ifndef SUMMER_MAP_H
#define SUMMER_MAP_H

#import <vector>
#import <fstream>
#import <sstream>
#import <map>

#import "World.h"
#import "Floor.h"


class Renderer;

class Map {
public:
    explicit Map(Scene *scene, World *world = nullptr);
    virtual ~Map();

    virtual void init() {

    };

    virtual void update();

    virtual void render();

    virtual void loadMap(const GLchar *file);


    World *world;
protected:
    std::vector<Floor *> floors;


private:
    virtual void genFloor(const std::vector<std::vector<std::string>>&, std::map<int, std::string>&);
    Scene *scene;
    const static std::string blank;
};


#endif //SUMMER_MAP_H
